1. Technical Field
The embodiments herein generally relate to decoding techniques, and, more particularly, to efficient decoding of MediaFLO™ system non real-time service files.
2. Description of the Related Art
MediaFLO™ (Forward Link Only) mobile multimedia multicast system, available from Qualcomm, Inc., California, USA, is a technology used for broadcast data to portable devices. The MediaFLO™ system technology transmits data on a frequency separate from the frequencies used by current cellular networks. The FLO system is a one-way data transmission path from a tower to the device. Non real-time service delivers content to the device in files which contain media clips (e.g., of audio and video) and other type of data which are stored in the device for later retrieval. The delivery of MediaFLO™ system non real-time service files in portable devices such as a cell phone, personal display assistant (PDA), and mobile television (TV) is performed specifically by two protocols: file delivery protocol (FDP) and file delivery control protocol (FDCP).
Files are subjected to message coding to ensure that they are delivered efficiently to the devices. The file delivery protocol (FDP) delivers file data and is responsible for the delivery of encoded packets. The FDP defines file delivery message (FDM) that is used to deliver encoded packets. FDCP delivers control information related to the file delivery. FDCP delivers messages which specify file delivery parameters that are common to a file delivery session. The FLO channel exposes the transmitted data to random noise and fading. The FDP and FDCP protocols recover any loss of data by channel erasure coding.
An erasure code is used to recover original message from an encoded data. An erasure code encodes data so that the original message can be decoded without receiving all the encoded data (e.g., it transforms a message of n blocks into a message with more than n blocks, such that the original message is recovered from a subset of those blocks). The decoding process on the device side is performed by collecting FDP code packets and recovering the data packets by inverting the encoding process and solving a linear system of equations. The recovery of all the data packets code using the decoding process is performed successfully by reducing code nodes in the file fragment.
A code node holds information of the data indices of the data packets used to generate it. The reducibility of code nodes is determined by the Lauritzen/Spiegelhalter Belief Propagation Algorithm. The algorithm solves the so-called “counting it twice” problem. This algorithm can be performed by either upward pass or downward pass. In the upward pass, each node, when sending a message, divides its table by that message, the division is cancelled out when the message eventually returns. Messages are not stored, tables are updated. Each node waits to send its message to its nearest neighbor r until it has received messages from all its other neighbors.
In the downward pass, each node waits to send its message to a particular neighbor outward from r until it has received messages from all its other neighbors. The decoding process imposes a big impact on the device working memory, file storage and computational power. Handheld mobile devices are characterized by low availability of memory resources, low computational power, and slow file storage access. In order to optimize the use of working memory, storage access and to minimize the steps to recover the data packets successfully from the code packets, there is a need for an efficient decoding algorithm.